﻿#define _CRT_SECURE_NO_WARNINGS 1
#include "BinarySearchTree.h"

int main()
{
	key::BSTree<int> bst;
	int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
	for (auto x : a)
	{
		bst.insert(x);
	}
	bst.Inorder();
	std::cout << std::endl;
	//测试插入16
	bst.insert(16);
	bst.Inorder();
	std::cout << std::endl;

	std::cout << bst.find(1) << std::endl;
	std::cout << bst.find(13) << std::endl;
	std::cout << bst.find(0) << std::endl;

	////测试删除
	///*bst.erase(7);
	//bst.Inorder();
	//std::cout << std::endl;*/

	//for (auto x : a)
	//{
	//	bst.erase(x);
	//	bst.Inorder();
	//	std::cout << std::endl;
	//}

	key::BSTree<int> bst1 = bst;

	return 0;
}



//int main()
//{
//	key_value::BSTree<std::string, std::string> dict;
//	//BSTree<string, string> copy = dict;
//	dict.insert("left", "左边");
//	dict.insert("right", "右边");
//	dict.insert("insert", "插入");
//	dict.insert("string", "字符串");
//	std::string str;
//	while (std::cin >> str)
//	{
//		auto ret = dict.find(str);
//		if (ret)
//		{
//			std::cout << "->" << ret->_value << std::endl;
//		}
//		else
//		{
//			std::cout << "⽆此单词，请重新输⼊" << std::endl;
//		}
//	}
//	return 0;
//}



//int main()
//{
//	std::string arr[] = { "苹果", "西瓜", "苹果", "西瓜", "苹果", "苹果", "西瓜",
//	"苹果", "香蕉", "苹果", "香蕉" };
//	key_value::BSTree<std::string, int> countTree;
//	for (const auto& str : arr)
//	{
//		// 先查找水果在不在搜索树中
//		// 1、不在，说明水果第⼀次出现，则插入<水果, 1>
//		// 2、在，则查找到的结点中水果对应的次数++
//		auto ret = countTree.find(str);
//		if (ret == nullptr)
//		{
//			countTree.insert(str, 1);
//		}
//		else
//		{
//			ret->_value++;
//		}
//	}
//	countTree.Inorder();
//	return 0;
//}